The present invention relates to a microprocessor in an information processing system and more particularly to a microprogram control type central processing unit (called hereinafter "microprogram controller).
In a microprogram controller, instructions programmed by a user are stored into a program memory as microinstructions. Each macroinstruction has address information designating a starting address of a sequence of microinstructions for executing the macroinstruction. The sequence of microinstructions for the respective macroinstructions are stored into a microinstruction memory. When a macroinstruction is read from the program memory, the sequence of microinstructions for that macroinstruction are read from the microinstruction memory. The controller executes the sequence of microinstructions. Thus, the macroinstruction is executed.
In general, when an interrupt request occurs during instruction execution, interrupt processing is not carried out immediately but is one after the instruction variation. In other words, the sequence of microinstructions for each macroinstruction include an interrupt conditional branch instruction at the end thereof. However, in cases where an instruction execution time is long such as a STRING instruction for transferring a character-string or a bit-string, it is preferable for real-time processing to receive an interrupt request during the instruction execution. In the execution of the STRING instruction, a loop of microinstructions for transferring one data unit of the character-string or bit-string is repeated a number of times determined by the length of the character-string or bit-string. Accordingly, the interrupt conditional branch instruction is inserted into the loop of microinstructions. When the transmission of one data unit is executed a predetermined number of times, an end signal is produced to complete the execution of the STRING instruction. Accordingly, the loop of microinstructions further requires another conditional branch instruction for judging whether or not the data transmission end signal is produced.
Thus, an interrupt request can be received during the execution of the STRING instruction. However, the loop of microinstructions includes two conditional branch instructions. Namely, the conditional branch instruction is executed twice every time one data unit of the character-string or bit-string is transferred. As a result, the execution time of the STRING instruction is undesirably prolonged.